<? if ($c = stack('name')) {
	
	$s = component_settings($c);
	
	
	
	if (($tid = gccHuuid(param('id'))) && 
		($ticket = datafetch('db_item', 'cs_ticket', "id=$tid AND kind=".TK_RECOVER_PASS))) {
		
		$person = json_decode($ticket['data'], true);

		
		if (($person['email'] = h($person['email'])) && ($d = datafetch('db_item', 'cs_person', "email='$person[email]'"))) {

			$res = array();
			$val = true;
			
			$new = trim(postdata('newpass'));
			$new2 = trim(postdata('newpass2'));
			
			if ($new === '') {
				$res[] = array('newpass', false, 'Пароль має не бути пустим');
				$val = false;
			}
			
			if ($new2 === '') {
				$res[] = array('newpass2', false, 'Пароль має не бути пустим');
				$val = false;
			}
			
			if ($new != $new2) {
				$res[] = array('newpass', false, 'Паролі не співпадають');
				$res[] = array('newpass2', false, 'Паролі не співпадають');
				$val = false;
			}
			
			if (($new !== '') && ($new2 !== '') && ($new == $new2)) {
				$res[] = array('newpass', true, '');
				$res[] = array('newpass2', true, '');
			}
		
		
			if ($val) {
		
				$newpass = pwd($new, $person['email']);
				
				datafetch('db_update', 'cs_person', "pass='$newpass'", "id=".$d['id']);
				datafetch('db_delete', 'cs_ticket', "id=$tid AND kind=".TK_RECOVER_PASS);
			
				print(json_encode($res));
				exit;
			}









		} else {
//debug('email is empty or not registered at all');
			header("Location: "._transformURL($CURRENT->url, array('remove_params' => 'all', 'add_level' => 'wrong')));
			exit;
		}

	} else {
//debug('wrong ticket');
		header("Location: "._transformURL($CURRENT->url, array('remove_params' => 'all', 'add_level' => 'wrong')));
		exit;
	}
	
	
	
	// validation
	
	$res = array();
	$val = true;
	
	$login = gccUserInfo('email');
	$old = trim(postdata('oldpass'));
	
	if (pwd($old, $login) == gccUserInfo('pass'))
		$res[] = array('oldpass', true, '');
	else {
		$res[] = array('oldpass', false, 'Невірний пароль');
		$val = false;
	}
	
	
	$new = trim(postdata('newpass'));
	$new2 = trim(postdata('newpass2'));
	
	if ($new === '') {
		$res[] = array('newpass', false, 'Пароль має не бути пустим');
		$val = false;
	}
	
	if ($new2 === '') {
		$res[] = array('newpass2', false, 'Пароль має не бути пустим');
		$val = false;
	}
	
	if ($new != $new2) {
		$res[] = array('newpass', false, 'Паролі не співпадають');
		$res[] = array('newpass2', false, 'Паролі не співпадають');
		$val = false;
	}
	
	if (($new !== '') && ($new2 !== '') && ($new == $new2)) {
		$res[] = array('newpass', true, '');
		$res[] = array('newpass2', true, '');
	}


	if ($val) {

		$newpass = pwd($new, $login);
		
		datafetch('db_update', 'cs_person', "pass='$newpass'", "id=".gccUserInfo('id'));
		$_SESSION['user']['vuser']['pass'] = $newpass;
	
		print(json_encode($res));
	exit;

	} else {
	
		print(json_encode($res));
		exit;
	}



unstack();
}